//
// Created by 12992 on 24-10-26.
//
#include <gtest/gtest.h>
#include "rsa.h"
#include <iostream>

TEST(TEST_RSA, generate_key_pair)
{
    crypto::rsa::generate_key_pair("private.pem", "public.pem");
}

TEST(TEST_RSA, ctor)
{
    crypto::rsa rsa(crypto::rsa::key_type::PUBLIC, "public.pem");
}


TEST(TEST_RSA, encryt)
{
    using namespace std;
    crypto::rsa rsa(crypto::rsa::key_type::PUBLIC, "public.pem");
    const auto res = rsa.encrypt("hello world!");
    cout << res << endl;
}


TEST(TEST_RSA, decrypt1)
{
    using namespace std;
    crypto::rsa encode(crypto::rsa::key_type::PUBLIC, "public.pem");
    const auto res1 = encode.encrypt("hello world!");
    cout << res1 << endl;
    crypto::rsa decode(crypto::rsa::key_type::PRIVATE, "private.pem");
    const auto res2 = decode.decrypt(res1);
    cout << res2 << endl;

    ASSERT_EQ(res2, "hello world!");
}
